package org.example.lotterysystem.service.dto;

import lombok.Data;
import org.example.lotterysystem.service.enums.ActivityPrizeStatusEnum;
import org.example.lotterysystem.service.enums.ActivityStatusEnum;
import org.example.lotterysystem.service.enums.ActivityUserStatusEnum;

import java.util.List;
import java.util.Objects;

public class ConvertActivityStatusDTO {
    /**
     * 活动id
     */
    private Long activityId;

    /**
     * 活动目标状态
     */
    private ActivityStatusEnum targetActivityStatus;

    /**
     * 奖品id
     */
    private Long prizeId;

    /**
     * 奖品目标状态
     */
    private ActivityPrizeStatusEnum targetPrizeStatus;

    /**
     * 人员id列表
     */
    private List<Long> UserIds;

    /**
     * 人员目标状态
     */
    private ActivityUserStatusEnum targetUserStatus;

    public Long getActivityId() {
        return activityId;
    }

    public void setActivityId(Long activityId) {
        this.activityId = activityId;
    }

    public ActivityStatusEnum getTargetActivityStatus() {
        return targetActivityStatus;
    }

    public void setTargetActivityStatus(ActivityStatusEnum targetActivityStatus) {
        this.targetActivityStatus = targetActivityStatus;
    }

    public Long getPrizeId() {
        return prizeId;
    }

    public void setPrizeId(Long prizeId) {
        this.prizeId = prizeId;
    }

    public ActivityPrizeStatusEnum getTargetPrizeStatus() {
        return targetPrizeStatus;
    }

    public void setTargetPrizeStatus(ActivityPrizeStatusEnum targetPrizeStatus) {
        this.targetPrizeStatus = targetPrizeStatus;
    }

    public List<Long> getUserIds() {
        return UserIds;
    }

    public void setUserIds(List<Long> userIds) {
        UserIds = userIds;
    }

    public ActivityUserStatusEnum getTargetUserStatus() {
        return targetUserStatus;
    }

    public void setTargetUserStatus(ActivityUserStatusEnum targetUserStatus) {
        this.targetUserStatus = targetUserStatus;
    }

    @Override
    public boolean equals(Object object) {
        if (this == object) return true;
        if (object == null || getClass() != object.getClass()) return false;
        ConvertActivityStatusDTO that = (ConvertActivityStatusDTO) object;
        return Objects.equals(activityId, that.activityId) && targetActivityStatus == that.targetActivityStatus && Objects.equals(prizeId, that.prizeId) && targetPrizeStatus == that.targetPrizeStatus && Objects.equals(UserIds, that.UserIds) && targetUserStatus == that.targetUserStatus;
    }

    @Override
    public int hashCode() {
        return Objects.hash(activityId, targetActivityStatus, prizeId, targetPrizeStatus, UserIds, targetUserStatus);
    }
}
